package com.wms.data.dao.impl;

import java.io.Serializable;
import java.util.List;

import com.wms.data.PaginateModel;
import com.wms.data.dao.jdbc.AbstractJdbcDao;
import com.wms.data.pojo.Pojo;
import com.wms.utils.PojoUtil;


// ~ File Information
// ====================================================================================================================

public abstract class AbstractDao<P extends Pojo<PK>, PK extends Serializable> 
		extends AbstractJdbcDao<P, PK> {

	// ~ Static Fields
	// ==================================================================================================================

	// ~ Fields
	// ==================================================================================================================

	// ~ Constructors
	// ==================================================================================================================

	// ~ Methods
	// ==================================================================================================================
	
	@SuppressWarnings("unchecked")
	public PK save(P pojo) {
			
		pojo.setId((PK) PojoUtil.getUUID());
		
		return super.save(pojo);
	}
	
	public void update(P pojo) {
		
		super.update(pojo);
	}
	
	public List<P> findAll() {
		
		return super.findAll();
	}
	
	public List<P> findAll(PaginateModel paginateModel) {
		
		return super.findAll(paginateModel);
	}
	
	public P findById(PK id) {
		
		return super.findById(id);
	}
	
	public P findById(P pojo) {
		
		return super.findById(pojo);
	}
	
	

}